#ifndef DATA_MODEL_H
#define DATA_MODEL_H

#include <string>
#include "Data/Objects/Texture.h"

namespace data {

	class Model {
	public:
		Model( Texture texture, std::string bodyFileName ) :
			m_texture( texture ),
			m_bodyFileName( bodyFileName )
		{}

		Model( const Model& model ) :
			m_texture( model.GetTexture() ),
			m_bodyFileName( model.GetBodyFileName() )
		{}

		inline const Texture GetTexture() const { return m_texture; }
		inline void SetTexture( const Texture& texture ) { m_texture = texture; }

		inline const std::string GetBodyFileName() const { return m_bodyFileName; }
		inline void SetBodyFileName( std::string bodyFileName ) { m_bodyFileName = bodyFileName; }

	private:
		Texture m_texture;
		std::string m_bodyFileName;
	};

	inline bool operator == ( const Model& a, const Model& b ) {
		if( a.GetTexture() != b.GetTexture() ) return false;
		if( a.GetBodyFileName() != b.GetBodyFileName() ) return false;
		return true;
	}

	inline bool operator != ( const Model& a, const Model& b ) {
		return !( a == b );
	}
}
#endif
